A high-speed network environment typically includes network devices such as routers and switches that facilitate delivery of information packets from source devices to destination devices. Information pertaining to the transfer of packet(s) through the network is usually embedded within one or more packets. Each packet traveling through a network can typically be treated independently from other packets in a packet stream. For example, each router within a network processes incoming packets and determines where the packet(s) should be forwarded. In a high-speed computing network environment, the speed of packet processing or routing can be critical in determining the performance of overall network system.
To manage and monitor net traffics in a high-speed conventional communications network, a measurement of netflow within IT (information technology) industry has been developed. Netflows are typically used to control net traffics and measure network usage by users. Each netflow or net flow includes a group of packets, which may carry data, video, audio, or a combination of data, video, and audio information. Some flows last for a long time due to continuous data transfer while other flows are transient because they exist for a very short period of time such as a ping command. As such, implementing and monitoring netflows traveling through a routing engine (or a router) is a critical network task.
A problem associated with the traditional netflow implementation is detecting and tracking a new netflow in a high speed network since system software is usually used to identify a new flow. System software typically does not operate at a line rate. A conventional approach to tracking high-speed new netflow is to employ hardware tracking and indexing mechanism. A challenge, however, with employment of hardware tracking and indexing mechanism is that the indexes in an on-chip memory is finite.